﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

#region USING STATEMENTS
using System;
using Microsoft.Xna.Framework;
#endregion

#region CODE BODY
namespace Fusion.Objects
{
    public enum ObjType { None, Sprite }
    public class BaseObject
    {
        //////////////////////////////////////////////////
        // Data Fields
        //////////////////////////////////////////////////
        private AABB boxCollider;
        private Vector2 position;

        //////////////////////////////////////////////////
        // Member Properties
        //////////////////////////////////////////////////
        public AABB BoxCollider
        {
            get { return boxCollider; }
            protected set { boxCollider = value; }
        }
        public Vector2 Position
        {
            get { return position; }
            set
            {
                position = value;
                BoxCollider.MoveTo(position);
            }
        }
        public Single X
        {
            get { return position.X; }
            set
            {
                position.X = value;
                BoxCollider.MoveTo(position);
            }
        }
        public Single Y
        {
            get { return position.Y; }
            set
            {
                position.Y = value;
                BoxCollider.MoveTo(position);
            }
        }

        //////////////////////////////////////////////////
        // Constructors
        //////////////////////////////////////////////////
        public BaseObject() { }

        //////////////////////////////////////////////////
        // Methods
        //////////////////////////////////////////////////
        public virtual ObjType GetObjType()
        {
            return ObjType.None;
        }
        public virtual void Update(Single Delta)
        {
        }
        public virtual void Render(Single Delta)
        {
        }
        public virtual void CollisionResponse(BaseObject Collider, Single Delta)
        {
        }
        public virtual void Dispose()
        {
        }
    }
}
#endregion

//////////////////////////////////////////////////////////////////////////////////////////////
// Copyright 2012 Jeffery Thomas Sventora
//////////////////////////////////////////////////////////////////////////////////////////////